Program Memory Redundancy Analysis and Elimination to Improve Application Performance

نویسنده

  • Keith D. Cooper
چکیده

As a consequence of current evolution trend of both software development paradigm and processor architecture, memory operations have become not only more frequent during program execution, but also more expensive in terms of hardware resource usage. A useful phenomenon which can be exploited to optimize memory operations is memory redundancy: loads and stores that have the same effects as previous memory operations. Elimination of these memory redundancies can reduce program running time and improve usage of hardware resources. In this article, we first presents an efficient and powerful static memory redundancy detection algorithm. Previous techniques separate the task of scalar and memory redundancy detection, thus they fail to discover the redundancies due to the interaction between scalar and memory values. The new algorithm unifies the scalar and memory redundancy detection by an integrated value numbering process, and is more powerful than the separate approach. A natural application of the algorithm is to enable program transformations to remove the redundancies detected. We show that traditional scalar redundancy removal frameworks can be easily adapted to remove memory redundancies. Experimental results show that the techniques can remove up to 40% of dynamic loads in benchmark applications from SPEC2000 and MediaBench. To understand the run-time memory redundancy phenomenon, we conduct a limit study to evaluate the effectiveness of memory redundancy removal methods with different level of capabilities. The study shows that many run-time memory redundancies still exist in highly optimized code, even after applying the techniques we have described in this article. This suggests that more aggressive methods to detect and remove dynamic memory redundancies should be profitable. We also look at the interaction between register allocation and memory redundancy elimination. The results show that register spills due to memory redundancy removal are rare in the benchmark applications, and there is little negative impact on performance caused by spilling overhead.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Memory Redundancy Elimination to Improve Application Energy Efficiency

Application energy consumption has become an increasingly important issue for both high-end microprocessors and mobile and embedded devices. A multitude of circuit and architecture-level techniques have been developed to improve application energy efficiency. However, relatively less work studies the effects of compiler transformations in terms of application energy efficiency. In this paper, w...

متن کامل

Effect of Working Memory Training on the Improving Reading Performance and Working Memory Capacity in Children with Dyslexia

Introduction: In recent years, researchers have focused on students who have challenges in learning, and these problems effect on their educational process. This study aimed to investigate the effect of working memory training programs on the improving reading performance and working memory capacity in children with dyslexia. Method: The research method was quasi-experimental. In this regard 30...

متن کامل

Load Elimination in the Presence of Side Effects, Concurrency and Precise Exceptions

Partial redundancy elimination can reduce the number of loads corresponding to field and array accesses in Java programs. The reuse of values loaded from memory at subsequent occurrences of load expressions must be done with care: Precise exceptions and the potential of side effects through method invocations and concurrent modifications in multi-threaded programs must be considered. This work ...

متن کامل

Towards Efficient Compilation of the Hpjava Language for High Performance Computing

This dissertation is concerned with efficient compilation of our Java-based, highperformance, library-oriented, SPMD style, data parallel programming language: HPJava. It starts with some historical review of data-parallel languages such as High Performance Fortran (HPF), message-passing frameworks such as p4, PARMACS, and PVM, as well as the MPI standard, and high-level libraries for multiarra...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004